import {IWebException} from "../exception/IWebException";

export class Response {
    private code: Number;
    private message: string;
    private data: any;

    /**
     * 返回API数据格式的公共方法
     * @param  {} code 状态码
     * @param  {} message 提示信息
     * @param  {} data 返回数据
     */
    static result(code: number, message: string, data?: any) {
        let result: any = {};
        result.code = code;
        result.message = message;
        result.data = data;
        return result;
    }

    /**
     * 返回API数据格式
     * @param  {} code 状态码
     * @param  {} message 提示信息
     * @param  {} data 返回数据
     */
    static ok(message: string, data?: any) {
        return this.result(200, message, data);
    }

    /**
     * 返回JSON空异常数据格式
     * @param  {} code 状态码
     * @param  {} message 提示信息
     * @param  {} data 返回数据
     */
    static NoFoundException(message: string, data?: any) {
        return this.result(400, message, data);
    }

    /**
     * 返回JSON服务异常数据格式
     * @param  {} code 状态码
     * @param  {} message 提示信息
     * @param  {} data 返回数据
     */
    static JSONException(message: string, data?: any) {
        return this.result(500, message, data);
    }

    /**
     * 返回JSON服务异常数据格式
     * @param  {} code 状态码
     * @param  {} message 提示信息
     * @param  {} data 返回数据
     */
    static ServiveException(e: IWebException) {
        return this.result(500, e.Message, e.InnerException);
    }

}